System and method for information protection

ABSTRACT

A computer-implemented method comprises: committing a transaction amount of a transaction with a commitment scheme to obtain a transaction commitment value, the commitment scheme comprising at least a transaction blinding factor; generating a first key of a symmetric key pair; encrypting a combination of the transaction blinding factor and the transaction amount t with the first key; and transmitting the transaction commitment value T and the encrypted combination to a recipient node associated with a recipient of the transaction for the recipient node to verify the transaction.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation application of the U.S. patentapplication Ser. No. 16/342,605 filed on Apr. 17, 2019 and entitled“SYSTEM AND METHOD FOR INFORMATION PROTECTION”, which is a nationalphase application of the International Application No.PCT/CN2018/117552, filed on Nov. 27, 2018. The contents of all of theabove applications are incorporated by reference in the entirety.

TECHNICAL FIELD

This disclosure generally relates to methods and devices for informationprotection.

BACKGROUND

Privacy is important to communications and data transfers among varioususers. Without protection, the users are exposed to the risk of identitytheft, illegal transfer, or other potential losses. The risk becomeseven greater when the communications and transfers are implementedonline, because of the free access of online information.

SUMMARY

Various embodiments of the present disclosure include systems, methods,and non-transitory computer readable media for information protection.

According to one aspect, a computer-implemented method for informationprotection comprises: committing a transaction amount t of a transactionwith a commitment scheme to obtain a transaction commitment value T, thecommitment scheme comprising at least a transaction blinding factor r_t;generating a first key of a symmetric key pair; encrypting a combinationof the transaction blinding factor r_t and the transaction amount t withthe first key; and transmitting the transaction commitment value T andthe encrypted combination to a recipient node associated with arecipient of the transaction for the recipient node to verify thetransaction.

In some embodiments, generating the first key comprises: generating thefirst key based on a private key SK_A of a sender of the transaction anda public key PK_B of the recipient under Diffie-Hellman (DH) keyexchange protocol.

In some embodiments, the commitment scheme comprises a Pedersencommitment based at least on the transaction blinding factor r_t andwith the transaction amount t being a committed value.

In some embodiments, the combination of the transaction blinding factorr_t and the transaction amount t comprises a concatenation of thetransaction blinding factor r_t and the transaction amount t.

In some embodiments, transmitting the transaction commitment value T andthe encrypted combination to the recipient node associated with therecipient of the transaction for the recipient node to verify thetransaction comprises transmitting the transaction commitment value Tand the encrypted combination to the recipient node associated with therecipient of the transaction, causing the recipient node to: generate asecond key of the symmetric key pair based on a private key SK_B of therecipient and a public key PK_A of a sender of the transaction; decryptthe encrypted combination with the second key generated by the recipientnode to obtain the transaction blinding factor r_t and the transactionamount t; and verify the transaction based at least on the transactioncommitment value T, the transaction blinding factor r t, and thetransaction amount t.

In some embodiments, causing the recipient node to verify thetransaction based at least on the transaction commitment value T, thetransaction blinding factor r t, and the transaction amount t comprisescausing the recipient node to: in response to determining that thetransaction commitment value T does not match the commitment scheme ofthe transaction amount t based on the transaction blinding factor r_t,reject the transaction; and in response to determining that thetransaction commitment value T matches the commitment scheme of thetransaction amount t based on the transaction blinding factor r_t,approve the transaction by signing the transaction to generate arecipient signature SIGB to return to a sender node associated with thesender.

In some embodiments, before transmitting the encrypted combination tothe recipient node associated with the recipient, the method furthercomprises: committing a change y of the transaction with the commitmentscheme to obtain a change commitment value Y, the commitment schemecomprising at least a change blinding factor r_y, wherein the change yis one or more assets of the sender tapped for the transaction less thetransaction amount t; generating another key based on a private key SK_Aof the sender and the public key PK_A of the sender; and encryptinganother combination of the change blinding factor r_y and the change ywith the another key.

In some embodiments, the method further comprises: in response toreceiving the recipient signature SIGB, approving the transaction bysigning the transaction to generate a sender signature SIGA; andsubmitting the transaction comprising the encrypted combination, theencrypted another combination, the transaction commitment value T, thechange commitment value Y, the sender signature SIGA, and the recipientsignature SIGB to one or more nodes in a blockchain network for the oneor more nodes to verify the transaction.

In some embodiments, submitting the transaction comprising the encryptedcombination, the encrypted another combination, the transactioncommitment value T, the change commitment value Y, the sender signatureSIGA, and the recipient signature SIGB to the one or more nodes in theblockchain network for the one or more nodes to verify the transactioncomprises: submitting the transaction comprising the encryptedcombination, the encrypted another combination, the transactioncommitment value T, the change commitment value Y, the sender signatureSIGA, and the recipient signature SIGB to the one or more nodes in theblockchain network, causing the one or more nodes to, in response tosuccessfully verifying the transaction, issue the transaction amount tto the recipient, eliminate the one or more assets tapped for thetransaction, and issue the change y to the sender.

According to another aspect, a non-transitory computer-readable storagemedium stores instructions to be executed by a processor to cause theprocessor to perform operations comprising: committing a transactionamount t of a transaction with a commitment scheme to obtain atransaction commitment value T, the commitment scheme comprising atleast a transaction blinding factor r_t; generating a first key of asymmetric key pair; encrypting a combination of the transaction blindingfactor r_t and the transaction amount t with the first key; andtransmitting the transaction commitment value T and the encryptedcombination to a recipient node associated with a recipient of thetransaction for the recipient node to verify the transaction.

According to another aspect, a system for information protectioncomprises a processor and a non-transitory computer-readable storagemedium coupled to the processor, the storage medium storing instructionsto be executed by the processor to cause the system to performoperations comprising: committing a transaction amount t of atransaction with a commitment scheme to obtain a transaction commitmentvalue T, the commitment scheme comprising at least a transactionblinding factor r_t; generating a first key of a symmetric key pair;encrypting a combination of the transaction blinding factor r_t and thetransaction amount t with the first key; and transmitting thetransaction commitment value T and the encrypted combination to arecipient node associated with a recipient of the transaction for therecipient node to verify the transaction.

According to another aspect, a computer-implemented method forinformation protection comprises: committing a transaction amount t of atransaction with a commitment scheme to obtain a transaction commitmentvalue T, the commitment scheme comprising at least a transactionblinding factor r_t; generating a first key of a symmetric key pair;encrypting a combination of the transaction blinding factor r_t and thetransaction amount t with the first key; and transmitting thetransaction commitment value T and the encrypted combination to arecipient node associated with a recipient of the transaction for therecipient node to: generate a second key of the symmetric key pair basedon a private key SK_B of the recipient and a public key PK_A of thesender, decrypt the encrypted combination with the second key generatedby the recipient node to obtain the transaction blinding factor r_t andthe transaction amount t, and verify the transaction based at least onthe transaction commitment value T, the transaction blinding factor r_t,and the transaction amount t.

According to another aspect, a non-transitory computer-readable storagemedium stores instructions to be executed by a processor to cause theprocessor to perform operations comprising: committing a transactionamount t of a transaction with a commitment scheme to obtain atransaction commitment value T, the commitment scheme comprising atleast a transaction blinding factor r_t; generating a first key of asymmetric key pair; encrypting a combination of the transaction blindingfactor r_t and the transaction amount t with the first key; andtransmitting the transaction commitment value T and the encryptedcombination to a recipient node associated with a recipient of thetransaction for the recipient node to: generate a second key of thesymmetric key pair based on a private key SK_B of the recipient and apublic key PK_A of the sender, decrypt the encrypted combination withthe second key generated by the recipient node to obtain the transactionblinding factor r_t and the transaction amount t, and verify thetransaction based at least on the transaction commitment value T, thetransaction blinding factor r_t, and the transaction amount t.

According to another aspect, a system for information protectioncomprises a processor and a non-transitory computer-readable storagemedium coupled to the processor, the storage medium storing instructionsto be executed by the processor to cause the system to performoperations comprising: committing a transaction amount t of atransaction with a commitment scheme to obtain a transaction commitmentvalue T, the commitment scheme comprising at least a transactionblinding factor r_t; generating a first key of a symmetric key pair;encrypting a combination of the transaction blinding factor r_t and thetransaction amount t with the first key; and transmitting thetransaction commitment value T and the encrypted combination to arecipient node associated with a recipient of the transaction for therecipient node to: generate a second key of the symmetric key pair basedon a private key SK_B of the recipient and a public key PK_A of thesender, decrypt the encrypted combination with the second key generatedby the recipient node to obtain the transaction blinding factor r_t andthe transaction amount t, and verify the transaction based at least onthe transaction commitment value T, the transaction blinding factor r_t,and the transaction amount t.

According to another aspect, a computer-implemented method forinformation protection comprises: committing a transaction amount t of atransaction with a commitment scheme to obtain a transaction commitmentvalue T, the commitment scheme comprising at least a transactionblinding factor r_t; generating a first key of a symmetric key pair;encrypting a combination of the transaction blinding factor r_t and thetransaction amount t with the first key; and transmitting thetransaction commitment value T and the encrypted combination to arecipient node associated with a recipient of the transaction for therecipient node to: generate a second key of the symmetric key pair basedon a private key SK_B of the recipient and a public key PK_A of thesender, decrypt the encrypted combination with the second key generatedby the recipient node to obtain the transaction blinding factor r_t andthe transaction amount t, and verify the transaction based at least onthe transaction commitment value T, the transaction blinding factor r_t,and the transaction amount t.

According to another aspect, a non-transitory computer-readable storagemedium stores instructions to be executed by a processor to cause theprocessor to perform operations comprising: committing a transactionamount t of a transaction with a commitment scheme to obtain atransaction commitment value T, the commitment scheme comprising atleast a transaction blinding factor r_t; generating a first key of asymmetric key pair; encrypting a combination of the transaction blindingfactor r_t and the transaction amount t with the first key; andtransmitting the transaction commitment value T and the encryptedcombination to a recipient node associated with a recipient of thetransaction for the recipient node to: generate a second key of thesymmetric key pair based on a private key SK_B of the recipient and apublic key PK_A of the sender, decrypt the encrypted combination withthe second key generated by the recipient node to obtain the transactionblinding factor r_t and the transaction amount t, and verify thetransaction based at least on the transaction commitment value T, thetransaction blinding factor r_t, and the transaction amount t.

According to another aspect, a system for information protectioncomprises a processor and a non-transitory computer-readable storagemedium coupled to the processor, the storage medium storing instructionsto be executed by the processor to cause the system to performoperations comprising: committing a transaction amount t of atransaction with a commitment scheme to obtain a transaction commitmentvalue T, the commitment scheme comprising at least a transactionblinding factor r_t; generating a first key of a symmetric key pair;encrypting a combination of the transaction blinding factor r_t and thetransaction amount t with the first key; and transmitting thetransaction commitment value T and the encrypted combination to arecipient node associated with a recipient of the transaction for therecipient node to: generate a second key of the symmetric key pair basedon a private key SK_B of the recipient and a public key PK_A of thesender, decrypt the encrypted combination with the second key generatedby the recipient node to obtain the transaction blinding factor r_t andthe transaction amount t, and verify the transaction based at least onthe transaction commitment value T, the transaction blinding factor r_t,and the transaction amount t.

According to another aspect, a computer-implemented method forinformation protection comprises: obtaining a combination of atransaction blinding factor r_t and a transaction amount t encryptedwith a first key of a symmetric key pair, and obtaining a transactioncommitment value T, wherein: the transaction amount t is committed witha commitment scheme by a sender node associated with a sender of atransaction to obtain the transaction commitment value T, the commitmentscheme comprising at least the transaction blinding factor r_t;generating a second key of the symmetric key pair; decrypting theobtained combination with the second key generated by a recipient nodeassociated with a recipient of the transaction to obtain the transactionblinding factor r_t and the transaction amount t; and verifying thetransaction based at least on the transaction commitment value T, thetransaction blinding factor r_t, and the transaction amount t.

According to another aspect, a non-transitory computer-readable storagemedium stores instructions to be executed by a processor to cause theprocessor to perform operations comprising: obtaining a combination of atransaction blinding factor r t and a transaction amount t encryptedwith a first key of a symmetric key pair, and obtaining a transactioncommitment value T, wherein: the transaction amount t is committed witha commitment scheme by a sender node associated with a sender of atransaction to obtain the transaction commitment value T, the commitmentscheme comprising at least the transaction blinding factor r_t;generating a second key of the symmetric key pair; decrypting theobtained combination with the second key generated by a recipient nodeassociated with a recipient of the transaction to obtain the transactionblinding factor r_t and the transaction amount t; and verifying thetransaction based at least on the transaction commitment value T, thetransaction blinding factor r t, and the transaction amount t.

According to another aspect, a system for information protectioncomprises a processor and a non-transitory computer-readable storagemedium coupled to the processor, the storage medium storing instructionsto be executed by the processor to cause the system to performoperations comprising: obtaining a combination of a transaction blindingfactor r_t and a transaction amount t encrypted with a first key of asymmetric key pair, and obtaining a transaction commitment value T,wherein: the transaction amount t is committed with a commitment schemeby a sender node associated with a sender of a transaction to obtain thetransaction commitment value T, the commitment scheme comprising atleast the transaction blinding factor r_t; generating a second key ofthe symmetric key pair; decrypting the obtained combination with thesecond key generated by a recipient node associated with a recipient ofthe transaction to obtain the transaction blinding factor r_t and thetransaction amount t; and verifying the transaction based at least onthe transaction commitment value T, the transaction blinding factor r_t,and the transaction amount t.

These and other features of the systems, methods, and non-transitorycomputer readable media disclosed herein, as well as the methods ofoperation and functions of the related elements of structure and thecombination of parts and economies of manufacture, will become moreapparent upon consideration of the following description and theappended claims with reference to the accompanying drawings, all ofwhich form a part of this specification, wherein like reference numeralsdesignate corresponding parts in the various figures. It is to beexpressly understood, however, that the drawings are for purposes ofillustration and description only and are not intended as a definitionof the limits of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

Certain features of various embodiments of the present technology areset forth with particularity in the appended claims. A betterunderstanding of the features and advantages of the technology will beobtained by reference to the following detailed description that setsforth illustrative embodiments, in which the principles of the inventionare utilized, and the accompanying drawings of which:

FIG. 1 illustrates an exemplary system for information protection, inaccordance with various embodiments.

FIG. 2 illustrates exemplary steps for transaction initiation andverification, in accordance with various embodiments.

FIG. 3A illustrates a flowchart of an exemplary method for informationprotection, in accordance with various embodiments.

FIG. 3B illustrates a flowchart of an exemplary method for informationprotection, in accordance with various embodiments.

FIG. 4A illustrates a flowchart of an exemplary method for informationprotection, in accordance with various embodiments.

FIG. 4B illustrates a flowchart of an exemplary method for informationprotection, in accordance with various embodiments.

FIG. 5 illustrates a block diagram of an exemplary computer system inwhich any of the embodiments described herein may be implemented.

DETAILED DESCRIPTION

Blockchain may be considered as a decentralized database, commonlyreferred to as a distributed ledger because the operation is performedby various nodes (e.g., computing devices) in a network. Any informationmay be written to the blockchain and saved or read from it. Anyone mayset up a server and join the blockchain network to become a node. Anynode may contribute computing power to maintain the blockchain byperforming complex computations, such as hash calculation to add a blockto a current blockchain, and the added block may contain various typesof data or information. The node that contributed the computing powerfor the added block may be rewarded with a token (e.g., digital currencyunit). Since the blockchain has no central node, each node is equal andholds the entire blockchain database.

Nodes are, for example, computing devices or large computer systems thatsupport the blockchain network and keep it running smoothly. There aretwo types of nodes, full nodes and lightweight nodes. Full nodes keep acomplete copy of the blockchain. The full nodes on the blockchainnetwork validate transactions and blocks they receive and relay them toconnected peers for providing consensus verification of thetransactions. Lightweight nodes, on the other hand, only download afraction of the blockchain. For example, lightweight nodes are used fordigital currency transactions. A lightweight node will communicate to afull node when it wants to transact.

This decentralization property can help prevent the emergence of amanagement center in a controlled position. For example, the maintenanceof the bitcoin blockchain is performed by the network of communicationnodes of the bitcoin software in the running area. This disclosure usesone or more blockchains or digital currencies, such as bitcoin andethereum, as examples. A person with ordinary skill in the art shouldappreciate that the technical solutions disclosed in this disclosure canuse or apply to other type of blockchains and digital currencies. Thatis, instead of banks, institutions, or administrators in the traditionalsense, multiple intermediaries exist in a form of computer serversexecuting bitcoin software. These computer servers form a networkconnected via the Internet, wherein anyone can potentially join thenetwork. Transactions accommodated by the network may be of a form:“user A wants to send Z bitcoins to user B,” wherein the transactionsare broadcast to the network using readily available softwareapplications. The computer servers function as bitcoin servers that areoperable to validate these financial transactions, add a record of themto their copy of the ledger, and then broadcast these ledger additionsto other servers of the network.

Maintaining the blockchain is referred to as “mining,” and those who dosuch maintenance are rewarded with newly created bitcoins andtransaction fees as aforementioned. For example, nodes may determine ifthe transactions are valid based on a set of rules the blockchainnetwork has agreed to. Miners may be located on any continent andprocess payments by verifying each transaction as valid and adding it tothe blockchain. Such verification is achieved via consensus provided bya plurality of miners and assumes that there is no systematic collusion.In the end, all data will be consistent, because the computation has tomeet certain requirements to be valid and all nodes will be synchronizedto ensure that the blockchain is consistent. Thus, data can beconsistently stored in a distributed system of blockchain nodes.

Through the mining process, transactions such as asset transfers areverified and added to a growing chain of blocks of a blockchain bynetwork nodes. By traversing the entire blockchain, the verification mayinclude, for example, whether the paying party has access to thetransferring asset, whether the asset had been spent before, whether thetransferring amount is correct, etc. For example, in a hypotheticaltransaction (e.g., a transaction of bitcoins under a UTXO (unspenttransaction output) model, a transaction of Ethereum coins under anAccount/Balance model) signed off by a sender, the proposed transactionmay be broadcast to the blockchain network for mining. A miner needs tocheck if the transaction is eligible to be executed according to theblockchain history. If the sender's wallet balance has sufficient fundsaccording to the existing blockchain history, the transaction isconsidered valid and can be added to the block. Once verified, the assettransfers may be included hi the next block to be added to theblockchain.

A block is much like a database record. Each time writing data creates ablock. These blocks are linked and protected using cryptography tobecome interconnected networks. Each block is connected to the previousblock, which is also the origin of the name “blockchain.” Each blockusually contains the cryptographic hash of the previous block, thegeneration time, and the actual data. For instance, each block containstwo parts: a block header to record the feature value of the currentblock, and a body to record actual data (e.g., transaction data). Thechain of blocks are linked via the block headers. Each block header maycontain multiple feature values, such as version, previous block hash,merkle root, timestamp, difficulty target, and nonce. The previous blockhash contains not only the address of the previous block, but also thehash of the data inside the previous block, thus making the blockchainsimmutable. The nonce is a number which, when included, yields a hashwith a specified number of leading zero bits.

For mining, the hash of the contents of the new block is taken by anode. The nonce (e.g., random string) is appended to the hash to obtaina new string. The new string is hashed again. The final hash is thencompared to the difficulty target (e.g., a level) and determined whetherthe final hash is actually less than the difficulty target or not. Ifnot, then the nonce is changed and the process repeats again. If yes,then the block is added to the chain and the public ledger is updatedand alerted of the addition. The node responsible for the successfuladdition is rewarded with bitcoins, for example, by adding a rewardtransaction to itself into the new block (known as coinbase generation).

That is, for every output “Y”, if k is chosen from a distribution withhigh min-entropy it is infeasible to find an input x such that H(k|x)=Y,where K is the nonce, x is the hash of the block, Y is the difficultytarget, and “|” denotes concatenation. On account of cryptographichashes being essentially random, in the sense that their output cannotbe predicted from their inputs, there is only one known way to find thenonce: to try out integers one after the other, for example 1, then 2,then 3, and so on, which may be known as brute-force. The larger thenumber of leading zeros, the longer on average it will take to find arequisite nonce Y. In one example, the bitcoin system constantly adjuststhe number of leading zeros, so that the average time to find a nonce isabout ten minutes. That way, as processing capabilities of computinghardware increase with time, over the years, the bitcoin protocol willsimply require more leading zero bits to make mining always take aduration of about ten minutes to implement.

As described, hashing is an important cornerstone for blockchain. Thehash algorithm can be understood as a function that compresses messagesof any length into a fixed-length message digest. More commonly used areMD5 and SHA. In some embodiments, the hash length of the blockchain is256 bits, which means that no matter what the original content is, a256-bit binary number is finally calculated. And it can be guaranteedthat the corresponding hash is unique as long as the original contentdifferent. For example, the hash of the string “123” is a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0 (hexadecimal), which has 256 bits whenconverted to binary, and only “123” has this hash. The hash algorithm inthe blockchain is irreversible, that is, the forward calculation is easy(from “123” to a8fdc205a9f19cc1 c7507a60c4f01b13d11d7fd0, and thereverse calculation cannot be done even if all computing resources areexhausted. Thus, the hash of each block of the blockchain is unique.

Further, if the content of the block changes, its hash will change. Theblock and the hash are in one-to-one correspondence, and the hash ofeach block is specifically calculated for the block header. That is, thefeature values of the block headers are connected to form a long string,and then the hash is calculated for the string. For example,“Hash=SHA256 (block header)” is a block hash calculation formula, SHA256is a blockchain hash algorithm applied to block header. The hash isuniquely determined by the block header, and not the block body. Asmentioned above, the block header contains a lot of content, includingthe hash of the current block, and the hash of the previous block. Thismeans that if the contents of the current block change, or if the hashof the previous block changes, it will cause a hash change in thecurrent block. If hacker modifies a block, the hash of that blockchanges. In order for a later block to connect to the modified block,the hacker must modify all subsequent blocks in turn, because the nextblock must contain the hash of the previous block. Otherwise themodified block will be detached from the blockchain. Due to designreasons, hash calculations are time-consuming, and it is almostimpossible to modify multiple blocks in a short period of time unlessthe hacker has mastered more than 51% of the computing power of theentire network. Thus, the blockchain guarantees its own reliability, andonce the data is written, it cannot be tampered with.

Once the miner finds the hash (that is, an eligible signature orsolution) for the new block, the miner broadcasts this signature to allthe other miners (nodes of the blockchain). Other miners now verify intheir turn if that solution corresponds with the problem of the sender'sblock (that is, determine if the hash input actually results in thatsignature). If the solution is valid, the other miners will confirm thesolution and agree that the new block can be added to the blockchain.Thus, the consensus of the new block is reached. This is also known as“proof of work.” The block for which consensus has been reached can nowbe added to the blockchain and is broadcast to all nodes on the networkalong with its signature. The nodes will accept the block and save it totheir transaction data as long as the transactions inside the blockcorrespond correctly with the current wallet balances (transactionhistory) at that point in time. Every time a new block gets added on topof this block, the addition also counts as another “confirmation” forthe blocks before it. For example, if a transaction is included in block502, and the blockchain is 507 blocks long, it means the transaction hasfive confirmations (corresponding to blocks 507 to 502). The moreconfirmations the transaction has, the harder it is for attackers toalter.

In some embodiments, an exemplary blockchain asset system utilizespublic-key cryptography, in which two cryptographic keys, one public keyand one private key, are generated. The public key can be thought of asbeing an account number, and the private key can be thought of as beingownership credentials. For example, a bitcoin wallet is a collection ofthe public and private keys. Ownership of an asset (e.g., digitalcurrency, cash asset, stock, equity, bond) associated with a certainasset address can be demonstrated with knowledge of the private keybelonging to the address. For example, bitcoin wallet software,sometimes referred as being “bitcoin client software”, allows a givenuser to transact bitcoins. A wallet program generates and stores privatekeys and communicates with peers on the bitcoin network.

In blockchain transactions, payers and payees are identified in theblockchain by their public cryptographic keys. For example, mostcontemporary bitcoin transfers are from one public key to a differentpublic key. In practice hashes of these keys are used in the blockchainand are called “bitcoin addresses.” In principle, if a hypotheticalattacker person S could steal money from person A by simply addingtransactions to the blockchain ledger like “person A pays person S 100bitcoins,” using the users' bitcoin addresses instead of their names.The bitcoin protocol prevents this kind of theft by requiring everytransfer to be digitally signed with the payer's private key, and onlysigned transfers can be added to the blockchain ledger. Since person Scannot forge person A's signature, person S cannot defraud person A byadding an entry to the blockchain equivalent to “person A pays person S200 bitcoins.” At the same time, anyone can verify person A's signatureusing his/her public key, and therefore that he/she has authorized anytransaction in the blockchain where he/she is the payer.

In the bitcoin transaction context, to transfer some bitcoins to user B,user A may construct a record containing information about thetransaction through a node. The record may be signed with user A'ssigning key (private key) and contains user A's public verification keyand user B's public verification key. The signature is used to confirmthat the transaction has come from the user, and also prevents thetransaction from being altered by anyone once it has been issued. Therecord bundled with other record that took place in the same time windowin a new block may be broadcast to the full nodes. Upon receiving therecords, the full nodes may work on incorporating the records into theledge of all transactions that have ever taken place in the blockchainsystem, adding the new block to a previously-accepted blockchain throughthe above-described mining process, and validate the added block againstthe network's consensus rules.

UTXO (unspent transaction output) model and Account/Balance model aretwo exemplary models for implementing blockchain transactions. UTXO is ablockchain object model. Under UTXO, assets are represented by outputsof blockchain transactions that have not been spent, which can be usedas inputs in new transactions. For example, user A's asset to betransferred may be in a form of UTXO. To spend (transact) the asset,user A has to sign off with the private key. Bitcoin is an example of adigital currency that uses UTXO model. In the case of a valid blockchaintransaction, unspent outputs may be used to effect further transactions.In some embodiments, only unspent outputs may be used in furthertransactions to prevent double spending and fraud. For this reason,inputs on a blockchain are deleted when a transaction occurs, whilst atthe same time, outputs are created in the form of UTXOs. These unspenttransaction outputs may be used (by the holders of private keys, forexample, persons with digital currency wallets) for the purpose offuture transactions.

Account/Balance Model (or referred to as Account-based TransactionModel), on the other hand, keeps track of the balance of each account asa global state. The balance of an account is checked to make sure it islarger than or equal to the spending transaction amount. An example ofhow Account/Balance Model works in Ethereum is provided:

1. Alice gains 5 ethers through mining. It is recorded in the systemthat Alice has 5 ethers.

2. Alice wants to give Bob 1 ether, so the system will first deduct 1ether from Alice's account, so Alice now has 4 ethers.

3. The system then increases Bob's account by 1 ether. The system knowsthat Bob has 2 ethers to begin with, therefore Bob's balance isincreased to 3 ethers.

The record-keeping for Ethereum may be like that in a bank. An analogyis using an ATM/debit card. The bank tracks how much money each debitcard has, and when Bob needs to spend money, the bank checks its recordto make sure Bob has enough balance before approving the transaction.

Since the blockchain and other similar ledgers are completely public,the blockchain itself has no privacy protection. The public nature ofP2P network means that, while those who use it are not identified byname, linking transactions to individuals and companies is feasible. Forexample, in cross-border remittances or in the supply chain, transactionamount has an extremely high level of privacy protection value, becausewith the transaction amount information, it is possible to infer thespecific location and identities of the transaction parties. The subjectmatter of the transaction may comprise, for example, money, token,digital currency, contract, deed, medical record, customer detail,stock, bond, equity, or any other asset that can be described in digitalform. Though UTXO model may provide anonymity to transaction amounts,for example, through ring signature in Monero and zero-knowledgecryptography Zcash, transaction amounts remain unprotected underAccount/Balance Model. Thus, a technical problem address by the presentdisclosure is how to protect online information such as the privacy oftransaction amounts. Such transactions may be under Account/BalanceModel.

Some existing technologies propose to use the Pedersen commitment schemeto encrypt the transaction amount and replace Account/Balance Model.Under the scheme, the sender sends the transaction amount and a randomnumber corresponding to the Pedersen commitment of the transactionamount to the payee through a secured channel off the blockchain. Thepayee verifies if the random number matches the transaction commitmentand performs local storage. For example, under Account/Balance Model, anaccount can be treated as a wallet (account) for keeping assets that areaggregated but not merged. Each asset may correspond to an asset type(e.g., cryptocurrency), and the balance of the account is the sum of theasset values. Even assets of the same type are not merged. Duringtransaction, a recipient of a transferring asset may be specified, andcorresponding asset may be removed from the wallet to fund thetransaction. The blockchain nodes verify that the paying wallet hassufficient asset(s) to cover the transaction, and then the nodes deletethe transferred asset from the paying wallet and add a correspondingasset to a recipient wallet.

However, limitations still exist for such scheme. First, the schemerequires the user to maintain a persistent storage locally to manage therandom numbers and plaintext balances corresponding to the encryptedaccount balance, and the management implementation is complicated;second, the storage of blinding factors (e.g., the random numbers) andthe plaintext balances corresponding to the “Pedersen asset” in a singlelocal node is prone to loss or corruption, while multi-node backupstorage is difficult to realize due to the frequent change of theaccount balance.

The systems and method presented in this disclosure may overcome theabove limitations and achieve robust privacy protection for transactionamounts, asset values, and blinding factors in commitment schemes. Tothat end, the symmetric keys obtained by Diffie-Hellman (DH) keyexchange protocol may be used to encrypt/decrypt the random numbers andthe plaintext balances, thus providing convenient management. Further,storing the encrypted information in blockchain ensures that thetransaction amounts, asset values, and blinding factors in commitmentschemes are not easily lost or tampered with.

Before discussing the figures of this disclosure, the PedersenCommitment and Diffie-Hellman (DH) key exchange protocol are describedbelow.

In some embodiments, a commitment scheme (e.g., Pedersen commitment) mayencrypt certain value a (e.g., transaction amount, asset value, keyparameter) as follows:PC(a)=r×G+a×Hwhere r is a random blinding factor (alternatively referred to asbinding factor) that provides hiding, G and H are the publicly agreedgenerators/basepoints of the elliptic curve and may be chosen randomly,sn is the value of the commitment, C(sn) is the curve point used ascommitment and given to the counterparty, and H is another curve point.That is, G and H may be known parameters to nodes. A “nothing up mysleeve” generation of H may be generated by hashing the basepoint G witha hash function mapping from a point to another with H=Hash(G). H and Gare the public parameters of the given system (e.g., randomly generatedpoints on an elliptic curve). Although the above provides an example ofPedersen commitment in elliptic curve form, various other forms ofPedersen commitment or other commitment schemes may be alternativelyused.

A commitment scheme maintains data secrecy but commits to the data sothat it cannot be changed later by the sender of the data. If a partyonly knows the commitment value (e.g., PC(a)), they cannot determinewhat underlying data values (e.g., a) have been committing to. Both thedata (e.g., a) and the blinding factor (e.g., r) may be revealed later(e.g., by the initiator node), and a recipient (e.g., consensus node) ofthe commitment can run the commitment and verify that the committed datamatches the revealed data. The blinding factor is present becausewithout one, someone could try guessing at the data.

Commitment schemes are a way for the sender (committing party) to committo a value (e.g., a) such that the value committed remains private, butcan be revealed at a later time when the committing party divulges anecessary parameter of the commitment process. Strong commitment schemesmay be both information hiding and computationally binding. Hidingrefers to the notion that a given value a and a commitment of that valuePC(a) should be unrelatable. That is, PC(a) should reveal no informationabout a. With PC(a), G, and H known, it is almost impossible to know abecause of the random number r. A commitment scheme is binding if thereis no plausible way that two different values can result in the samecommitment. A Pedersen commitment is perfectly hiding andcomputationally binding under the discrete logarithm assumption.Further, with r, G, H, and PC(a) known, it is possible to verify PC(a)by determining if PC(a)=r×G+a×H.

A Pedersen commitment has an additional property: commitments can beadded, and the sum of a set of commitments is the same as a commitmentto the sum of the data (with a blinding factor set as the sum of theblinding factors): PC(r₁, data₁)+PC(r₂, data₂)==PC(r₁+r₂, data₁+data₂);PC(r₁, data₁)−PC(r₁, data₁)==0. In other words, the commitment preservesaddition and the commutative property applies, i.e., the Pedersencommitment is additively homomorphic, in that the underlying data may bemanipulated mathematically as if it is not encrypted.

In one embodiment, a Pedersen commitment used to encrypt the input valuemay be constructed using elliptic curve points. Conventionally, anelliptic curve cryptography (ECC) pubkey is created by multiplying agenerator for the group (G) with the secret key (r): Pub=rG. The resultmay be serialized as a 33-byte array. ECC public keys may obey theadditively homomorphic property mentioned before with respect toPedersen commitments. That is: Pub1+Pub2=(r1+r2(mod n))G.

The Pedersen commitment for the input value may be created by picking anadditional generator for the group (H, in the equations below) such thatno one knows the discrete log for second generator H with respect tofirst generator G (or vice versa), meaning no one knows an x such thatxG=H. This may be accomplished, for example, by using the cryptographichash of G to pick H: H=to_point(SHA256(ENCODE(G))).

Given the two generators G and H, an exemplary commitment scheme toencrypt the input value may be defined as: commitment=rG+aH. Here, r maybe the secret blinding factor, and a may be the input value beingcommitting to. Hence, if sn is committed, the above-described commitmentscheme PC(a)=r×G+a×H can be obtained. The Pedersen commitments areinformation-theoretically private: for any commitment, there exists someblinding factor which would make any amount match the commitment. ThePedersen commitments may be computationally secure against fakecommitment, in that the arbitrary mapping may not be computed.

The party (node) that committed the value may open the commitment bydisclosing the original value a and the factor r that completes thecommitment equation. The party wishing to open the value PC(a) will thencompute the commitment again to verify that the original value sharedindeed matches the commitment PC(a) initially received. Thus, the assettype information can be protected by mapping it to a unique serialnumber, and then encrypting it by Pedersen commitment. The random numberr chosen when generating the commitment makes it almost impossible foranyone to infer the type of asset type that is committed according tothe commitment value PC(a).

In some embodiments, Diffie-Hellman (DH) key exchange may be used as amethod for securely exchanging cryptographic keys over a public channel.DH key exchange, also called exponential key exchange, is a method ofdigital encryption that uses numbers raised to specific powers toproduce decryption keys on the basis of components that are neverdirectly transmitted, making the task of a would-be code breakermathematically overwhelming.

In an example of implementing Diffie-Hellman (DH) key exchange, the twoend users Alice and Bob, while communicating over a channel they know tobe private, mutually agree on positive whole numbers p and q, such thatp is a prime number and q is a generator of p. The generator q is anumber that, when raised to positive whole-number powers less than p,never produces the same result for any two such whole numbers. The valueof p may be large, but the value of q is usually small. That is, q is aprimitive root modulus p.

Once Alice and Bob have agreed on p and q in private, they choosepositive whole-number personal keys a and b, both less than theprime-number modulus p and both may be randomly generated. Neither userdivulges their personal key to anyone, and ideally, they memorize thesenumbers and do not write them down or store them anywhere. Next, Aliceand Bob compute public keys a* and b* based on their personal keysaccording to the formulasa*=q ^(a) mod pandb*=q ^(b) mod p

The two users can share their public keys a* and b* over a communicationmedium assumed to be insecure, such as the Internet or a corporate widearea network (WAN). From these public keys, a number k1 can be generatedby either user on the basis of their own personal keys.

Alice computes k1 using the formula: k1=(b*)^(a) mod p

Bob computes k1 using the formula: k1=(a*)^(b) mod p

The value of k1 turns out to be the same according to either of theabove two formulas. However, the personal keys a and b, which arecritical in the calculation of k1, have not been transmitted over apublic medium. Even with p, q, a* and b*, it is still very difficult tocalculate a and b. Because it is a large and apparently random number, apotential hacker has almost no chance of correctly guessing k1, evenwith the help of a powerful computer to conduct millions of trials. Thetwo users can therefore, in theory, communicate privately over a publicmedium with an encryption method of their choice using the decryptionkey k1.

In another example of implementing Diffie-Hellman (DH) key exchange, allcalculations happen in a discrete group of sufficient size, where theDiffie-Hellman problem is considered hard, usually the multiplicativegroup modulo a big prime (e.g., for classical DH) or an elliptic curvegroup (e.g., for Elliptic curve Diffie-Hellman).

For two transacting parties, each party chooses a private key a or b.

Each party calculates the corresponding public key aG or bG.

Each party sends the public key aG or bG to the other party.

Each party uses the received public key together with its own privatekey to calculate the new shared secret a(bG)=b(aG), which may bereferred to as symmetric keys of a symmetric key pair.

As described later, this exemplary method can be used to generatesymmetric keys abG and baG. The result of this key exchange is a sharedsecret, which can then be used with a key derivation function (e.g.,encryption function E( ) using other input known to both parties, suchas a concatenation of a random number and an asset value) to derive aset of keys for a symmetric encryption scheme. Alternatively, variousother computation methods can be used, for example, by generating publickeys ga and g^(b) and shared key g^(ab) or g^(ba).

During transactions, information protection is important to secure userprivacy, and transaction amount is one type of information that haslacked protection. FIG. 1 shows an exemplary system 100 for informationprotection, in accordance with various embodiments. As shown, ablockchain network may comprise a plurality of nodes (e.g., full nodesimplemented in servers, computers, etc.). For some blockchain platform(e.g., NEO), full nodes with certain level of voting power may bereferred to as consensus nodes, which assume the responsibility oftransaction verification. In this disclosure, full nodes, consensusnodes, or other equivalent nodes can verify the transaction.

Also, as shown in FIG. 1, user A and user B may use correspondingdevices, such as laptops and mobile phones serving as lightweight nodesto perform transactions. For example, user A may want to transact withuser B by transferring some asset in user A's account to user B'saccount. User A and user B may use corresponding devices installed withan appropriate blockchain software for the transaction. User A's devicemay be referred to as an initiator node A that initiates a transactionwith user B's device referred to as recipient node B. Node A may accessthe blockchain through communication with node 1, and Node B may accessthe blockchain through communication with node 2. For example, node Aand node B may submit transactions to the blockchain through node 1 andnode 2 to request adding the transactions to the blockchain. Off theblockchain, node A and node B may have other channels of communication(e.g., regular internet communication without going through nodes 1 and2).

Each of the nodes in FIG. 1 may comprise a processor and anon-transitory computer-readable storage medium storing instructions tobe executed by the processor to cause the node (e.g., the processor) toperform various steps for information protection described herein. Theeach node may be installed with a software (e.g., transaction program)and/or hardware (e.g., wires, wireless connections) to communicate withother nodes and/or other devices. Further details of the node hardwareand software are described later with reference to FIG. 5.

FIG. 2 illustrates exemplary steps for transaction and verificationamong a sender node A, a recipient node B, and one or more verifyingnodes, in accordance with various embodiments. The operations presentedbelow are intended to be illustrative. Depending on the implementation,the exemplary steps may include additional, fewer, or alternative stepsperformed in various orders or in parallel.

In various embodiments, accounts of transaction parties (sender user Aand recipient user B) are configured for Account/Balance model. User Aand user B may perform the following steps to carry out the transactionvia one or more devices, such as their laptop, mobile phone, etc. Thedevices may be installed with appropriated software and hardware toperform the various steps. Each account may be associated with acryptographic private key (secret key)—public key pair. The private keymay be denoted as SK=x, and the public key may be denoted as PK=xG,where G is a generator of the group. Each account may contain variousassets, each denoted as: (V=PC(r, v), E(K, r, v)), where v representsthe face value of the asset, V represents a Pedersen commitment of theface value v, r is a blinding factor (e.g., a random number), PC( ) is aPedersen commitment algorithm, E( ) is an encryption algorithm (e.g.,symmetric key encryption algorithm), and K is an encryption key. In oneexample, the each asset may be denoted as (V=PC(r, v), E(K, r∥v)), where∥ represents concatenation. Each asset may also include informationother than that listed, such as the source information of the asset.

In one example, before user A successfully transacts an amount t to userB in a blockchain-verified transaction, the addresses of and assets inA's account and B's account are as follows:

For A's Account (account A):

Address: (SK_A=a, PK_A=aG)

Assets A_1 to A_m respectively of values a_1 to a_m are denoted as:

-   -   (A_1=PC(r_{a_1}, a_1), E(K_A, r_{a_1}∥a_1)),    -   (A_2=PC(r_{a_2}, a_2), E(K_A, r_{a_2}∥a_2)),    -   (A_m=PC(r_{a_m}, a_m), E(K_A, r_{a_m}∥a_m))

For B's Account (account B):

Address: (SK_B=b, PK_B=bG)

Assets B_1 to B_n respectively of values b_1 to b_n are denoted as:

-   -   (B_1=PC(r_{b_1}, b_1), E(K_B, r_{b_1}∥b_1)),    -   (B_2=PC(r_{b_2}, b_2), E(K_B, r_{b_2}∥b_2)),    -   (B_n=PC(r_{b_n}, b_n), E(K_B, r_{b_n}∥b_n))

In some embodiments, the key generation may be based on elliptic curveecp256k1 for each account under the Account/Balance model. For example,on Ethereum ecp256k1, any number between 1 to 2²⁵⁶−1 may be a validprivate key SK. A good library generates a private key with takingsufficient randomness into account. Ethereum requires private key SK tobe 256 bit long. The public key generation is done using group operationof ECC cryptography. To derive public key PK, private key may bemultiplied by G. The multiplication used to derive the public key PK isECC multiplication (elliptic curve point multiplication), which isdifferent from normal multiplication. G is the generator point which isone of the domain parameters of ECC cryptography. G may have a fixedvalue for ecp256k1. The address may be, for example, the last 20 bytesof the hash of the public key PK.

In some embodiments, at step 201, node A may initiate a transaction withnode B. For example, user A and user B may negotiate a transactionamount t from user A's account A to user B's account B. Account A andaccount B may correspond to the “wallets” described herein. Account Amay have one or more assets. The asset may comprise, for example, money,token, digital currency, contract, deed, medical record, customerdetail, stock, bond, equity, or any other asset that can be described indigital form. Account B may have one or more assets or no asset. Eachasset may be associated with various blockchain information stored inblocks of the blockchain, the blockchain information comprising, forexample, NoteType representing asset type, NoteID representing uniqueidentification of asset, commitment values representing a commitment(e.g., Pedersen commitment) value of the asset value, encryption ofrandom number and asset value, etc.

As described with respect to account A, in some embodiments, assets A_1to A_m respectively correspond to asset values a_1 to a_m and randomnumbers r_1 to r_m. Based on the random numbers r_1 to r_m, node A maycommit the asset values in account A to a commitment scheme (e.g.,Pedersen commitment) to obtain encrypted commitment values. For example,the encrypted commitment values may be PC_1 to PC_m, wherePC_i=PC(r_{a_i}, a_i)=r_{a_i}×G+a_i×H, where G and H are knownparameters, and i is between 1 and m. In addition to the first field PC(. . . ), each asset is also associated with a second field E( . . . ) asdescribed earlier. The second field E( . . . ) may represent anencryption of the corresponding random number and asset value encryptedwith key K_A. For example, the encryption may be E(K_A, r_{a_i}∥a_i)).The PC( . . . ) and E( . . . ) for each asset may be inherited fromprevious transactions. The same mechanism may apply to account B and itsassets.

In some embodiments, K_A may comprise various type of encryption key.For example, K_A may be a*PK_A=aaG which is further described below, andK_B may be a*PK_B=abG which is further described below, where a, b, andG may be multiplied by ECC multiplication.

In some embodiments, to satisfy the transaction amount t, user A may tapone or more assets of an aggregated value at least t from account A. Forexample, with reference to FIG. 1, node A may select assets A_1 and A_2for this transaction. Node A may read assets PC(r_1, a_1) and PC(r_2,a_2) from node 1. With the random numbers r_1 and r_2 known to node A,node A can decrypt the read assets PC(r_1, a_1) and PC(r_2, a_2) toobtain asset values a_1 and a_2, to ensure that the sum of a_1 and a_2is no less than the transaction amount t. Different assets may beexchanged to one another within the account based on various rates.

In some embodiments, the amount of selected asset value in excess of t,if any, is set to y as the change. For example, node A may determine thechange y=a_1+a_2−t. Node A may select random numbers r_t and r_y asblinding factors to generate Pedersen commitments for t and y: T=PC(r t,t), Y=PC(r_y, y). That is, node A may generate a random number r_t for tand a random number r_y for y. Node A can commit t and r_t to acommitment scheme (e.g., homomorphic encryption) to obtain commitmentvalue T=PC(r t, t), and commit y and r_y to a commitment scheme (e.g.,homomorphic encryption) to obtain commitment value Y=PC(r_y, y).

Further, in some embodiments, node A generates a first key of asymmetric key pair a*PK_B=abG and generates another key a*PK_A=aaG. NodeA uses the first key abG to encrypt (r t∥t), which gives encryptionE(abG, r_t∥t), and uses the key aaG to encrypt (r_y∥y), which givesencryption E(aaG, r_y∥y). FIG. 3A and FIG. 3B may follow this example.Alternative to obtaining the encryption E(abG, r_t∥t) by node A, user Amay send r_t and t to node B along with the transaction information,causing node B to generate a second key of the symmetric key pairb*PK_A=baG to encrypt (r t∥t). Node B would send the encryption to nodeA to allow node A to verify. FIG. 4A and FIG. 4B may follow thisexample. Though concatenation is used in various examples of thisdisclosure, alternative combinations of inputs, outputs, or otherparameters may be used for the encryption function or another operation.

Further, in some embodiments, node A may generate a range proof RP toprove to blockchain nodes if the value of PC(r_(t), t) and the value ofPC(r_(y), y) are each within a valid range. For example, to have validvalues of PC(r_(t), t), the transaction amount t may be within a validrange [0, 2^(n)−1]; and to have valid values of PC(r_(y), y), the changey may be within a valid range [0, 2^(n)−1]. In one embodiment, node Acan use the block proof technique to generate the range proof RP relatedto (r_y, y, Y, r_t, t, T) for the blockchain nodes (e.g., consensusnodes) to verify at a later step whether the transaction amount t andthe change y are within the valid range based on the range proof. Therange proof may comprise, for example, Bulletproofs, Borromean ringsignature, etc.

At step 202, node A may send the transaction information to node B(e.g., through a secured channel off the blockchain). The senttransaction information may comprise, for example, commitment valueT=PC(r t, t), commitment value Y=PC(r_y, y), encryption E(abG, r_t∥t),encryption E(aaG, r_y∥y), range proof RP, etc. The commitment valueY=PC(r_y, y), encryption E(aaG, r_y∥y), and range proof RP may beoptional because node B may not care about the change sent back toaccount A. In some embodiments, the transmission via the off-blockchaincommunication channel can prevent the transaction information from beingrecorded into the blockchain and prevent nodes other than the sendernode A and the recipient node B from obtaining the transactioninformation. E(aaG, r_y∥y) may not need to be sent to node B, but may beneeded in future for user A to spend the change y since the change is tobe returned to account A.

At step 203, node B may verify the random number r_t, the transactionamount t, and the commitment value T. In some embodiments, node B maygenerate a second key of the symmetric key pair b*PK_A=baG and use thesecond key baG to decrypt the encryption E(abG, r_t∥t) to obtain r_t∥t.From r_t∥t, node B may obtain r_t and t, and then verify if r_t and tmatch T=PC(r t, t). That is, node B may verify if the commitment valueT=PC(r t, t) is correct based on the random number r_t and thetransaction amount t according to Pedersen commitment algorithm. If thematch/verification fails, node B may reject the transaction; and if thematch/verification succeeds, node B may sign the transaction to replynode A at step 204.

At step 204, node B may sign the transaction with user B's private keySK_B to generate a signature SIGB. The signing may follow DigitalSignature Algorithm (DSA) such as Elliptic Curve Digital SignatureAlgorithm (ECDSA), whereby the receiver of the signature can verify thesignature with the signator's public key to authenticate the signeddata. The signature SIGB indicates that the recipient node B agrees tothe transaction.

At step 205, node B may transmit the signed transaction back to node Awith the signature SIGB.

At step 206, if SIGB is not successfully verified, node A may reject thetransaction. If SIGB is successfully verified, node A may sign thetransaction with user A's private key SK_A to generate a signature SIGA.Similarly, the signing may follow the Digital Signature Algorithm (DSA).In one embodiment, node A may sign (E(abG, r_t∥t); E(aaG, r_y∥y); Y; T;RP) with user A's private key to generate the signature SIGA.

At step 207, node A may submit the transaction to the blockchain,causing the blockchain nodes to verify the transaction and determinewhether to add the transaction to the blockchain. In one embodiment,node A may submit the transaction (E(abG, r t∥t); E(aaG, r_y∥y); Y; T;RP; SIGA; SIGB) to the blockchain via node 1 to execute the transaction.The transaction may comprise additional parameters or may not compriseall of the listed parameters. The transaction may be broadcast to one ormore nodes (e.g., consensus nodes) in the blockchain for verification.If the verification succeeds, the transaction is added to theblockchain. If the verification fails, the transaction is rejected fromadding to the blockchain.

At steps 208-213, the one or more nodes (e.g., consensus nodes) verifythe signatures, range proof, and other information of the submittedtransaction. If the verification fails, the nodes reject thetransaction. If the verification succeeds, the nodes accept thetransaction, update user A's account and user B's account separately.

In some embodiments, to execute the transaction, transaction informationmay be verified by various blockchain nodes. The transaction informationmay comprise transaction address TXID, signature(s), input, and output.TXID may comprise the hash of the transaction content. The signaturesmay comprise crypto-key signatures by the sender and recipient. Theinput may comprise an address of the sender's account in blockchain, oneor more assets tapped from the sender's blockchain account fortransaction, etc. The output may comprise an address of the recipient'saccount in blockchain, asset type(s) of the recipient asset(s),commitment value(s) of the recipient asset(s), etc. The input and outputmay comprise indexed information in a tabular form. In some embodiments,the value of NoteID value can be “the TXID+ an index of the asset in theoutput.”

In some embodiments, the one or more nodes of the blockchain may verifythe submitted transaction (E(abG, r_t∥t); E(aaG, r_y∥y); Y; T; RP; SIGA;SIGB).

At step 208, the nodes may verify whether the transaction has beenexecuted using an anti-double-spending mechanism or anti-replay-attackmechanism. If the transaction has been executed, the nodes may rejectthe transaction; otherwise, the method may proceed to step 209.

At step 209, the nodes may check the signatures SIGA and SIGB (forexample, based on A's public key and B's public key respectively). Ifany of the signatures is incorrect, the nodes may reject thetransaction; otherwise, the method may proceed to step 210.

At optional step 210, the nodes may verify if the asset types areconsistent. For example, the nodes may verify if the asset types in theNoteType for A_1 to A_2 are consistent with the asset type(s) of thetransaction amount t. If any of the asset types is inconsistent, thenodes may reject the transaction; otherwise, the method may proceed tostep 211. In some embodiments, the original asset type in the wallet mayhave been converted to another type based on an exchange rate, and thisstep may be skipped.

At step 211, the nodes may check the range proof RP to validate thevalue of PC(r_(t), t) and the value of PC(r_(y), y). In one embodiment,the nodes may check the range proof RP to verify whether the transactionamount t is no less than zero and the change y is no less than zero. Ifthe verification fails, the nodes may reject the transaction; otherwise,the method may proceed to step 212.

At step 212, the nodes may check if the inputs and the outputs of thetransaction are consistent. If the check fails, the nodes may reject thetransaction; otherwise, the method may proceed to step 213.

At step 213, the nodes may verify if node A has the asset(s) tapped forthe transaction. In one embodiment, the nodes may perform thisverification based on information stored in the blockchain, such asinformation corresponding to account A. The information may compriseprevious transaction information of all assets. The nodes can thusdetermine if account A has the transacting asset for the transaction. Ifthe determination is no, the nodes may reject the transaction;otherwise, the method may proceed to step 214.

At step 214, the nodes may update the account A and account B. Forexample, the nodes may remove the transacting asset of amount t fromaccount A, and add the same to account B. Based on the homomorphicproperty, since Y=PC(r_y, y) and node 1 knows r_y and can access thecommitment value Y from the blockchain, node 1 can decrypt Y to obtainthe asset value y and return the same to account A. Node 2 obtains atstep 202 the random number r_t from node 1 and can obtain from theblockchain the commitment value T. Thus, node 2 can decrypt T to obtainthe asset value t and add the same to account B.

In one example, after the update to account A and account B, account Areceives the change y to the tapped assets and receives its untappedassets. For example, the tapped assets may be A_1 and A_2 which areremoved in the transaction with the change y returned to account A, andthe untapped assets are A_3, . . . , A_m. Account B receives thetransaction amount t and receives its original assets (e.g., B_1, . . ., B_n). The assets in A's account and B's account are as follows:

For A's Account (account A), updated assets are denoted as:

(Y=PC(r_y, y), E(aaG, r_y∥y)),

(A_m=PC(r_{a_m}, a_m), E(K_A, r_{a_m}∥a_m))

For B's Account (account B), updated assets are denoted as:

(B_1=PC(r_{b_1}, b_1), E(K_B, r_{b_1}∥b_1)),

(B_2=PC(r_{b_2}, b_2), E(K_B, r_{b_2}∥b_2)),

(B_n=PC(r_{b_n}, b_n), E(K_B, r_{b_n}∥b_n)),

(T=PC(r t, t), E(abG, r_t∥t))

Although this disclosure uses node A/user A and node B/user B toillustrate the sender and recipient respectively, the sender and therecipient can be the same node/user. For example, the change y of atransaction (total tapped assets in account A minus the transactionamount) may be sent back to the sender of the transaction. Thus, thevarious steps performed by node B as described herein may alternativelybe performed by node A.

FIG. 3A illustrates a flowchart of an exemplary method 300 forinformation protection, according to various embodiments of the presentdisclosure. The method 300 may be implemented by one or more components(e.g., node A, node 1, a combination of node A and node 1) of the system100 of FIG. 1. The method 300 may be implemented by a system or device(e.g., computer, server) comprising a processor and a non-transitorycomputer-readable storage medium (e.g., memory) storing instructions tobe executed by the processor to cause the system or device (e.g., theprocessor) to perform the method 300. The operations of method 300presented below are intended to be illustrative. Depending on theimplementation, the exemplary method 300 may include additional, fewer,or alternative steps performed in various orders or in parallel.

Block 301 comprises: committing a transaction amount t of a transactionwith a commitment scheme to obtain a transaction commitment value T, thecommitment scheme comprising at least a transaction blinding factor r_t.For example, as described earlier, T=PC(r t, t). In some embodiments,the commitment scheme comprises a Pedersen commitment based at least onthe transaction blinding factor r_t and with the transaction amount tbeing a committed value.

Block 302 comprises: generating a first key of a symmetric key pair. Forexample, as described earlier, SK_A=a, PK_B=bG, and the first key may bea*PK_B=abG. In some embodiments, generating the first key and second keycomprises: generating the first key and second key based on a privatekey SK_A of a sender of the transaction and a public key PK_B of therecipient under Diffie-Hellman (DH) key exchange protocol.

Block 303 comprises: encrypting a combination (e.g., concatenation) ofthe transaction blinding factor r_t and the transaction amount t withthe first key. For example, as described earlier, Node A may use thefirst key abG to encrypt (r t∥t), which gives the encryption E(abG,r_t∥t).

Block 304 comprises: transmitting the transaction commitment value T andthe encrypted combination to a recipient node associated with arecipient of the transaction for the recipient node to verify thetransaction. In some embodiments, transmitting the transactioncommitment value T and the encrypted combination to the recipient nodeassociated with the recipient of the transaction for the recipient nodeto verify the transaction comprises transmitting the transactioncommitment value T and the encrypted combination to the recipient nodeassociated with the recipient of the transaction, causing the recipientnode to: generate a second key of the symmetric key pair based on aprivate key SK_B of the recipient and a public key PK_A of the sender,decrypt the encrypted combination with the second key generated by therecipient node to obtain the transaction blinding factor r_t and thetransaction amount t, and verify the transaction based at least on thetransaction commitment value T, the transaction blinding factor r_t, andthe transaction amount t. See, e.g., Step 203. For example, as describedearlier, the recipient node may independently generate the second keyb*PK_A=baG. The keys abG and baG are symmetric and equal. That is, therecipient node may not receive the first key abG from the sender node,and instead, the recipient node independently generates the second keybaG as an equivalent of abG.

In some embodiments, causing the recipient node to verify thetransaction based at least on the transaction commitment value T, thetransaction blinding factor r t, and the transaction amount t comprisescausing the recipient node to: in response to determining that thetransaction commitment value T does not match the commitment scheme ofthe transaction amount t based on the transaction blinding factor r_t,reject the transaction; and in response to determining that thetransaction commitment value T matches the commitment scheme of thetransaction amount t based on the transaction blinding factor r_t,approve the transaction by signing the transaction to generate arecipient signature SIGB to return to a sender node associated with thesender.

In some embodiments, before (block 304) transmitting the encryptedcombination to the recipient node associated with the recipient, themethod further comprises: committing a change y of the transaction withthe commitment scheme to obtain a change commitment value Y, thecommitment scheme comprising at least a change blinding factor r_y,wherein the change y is one or more assets of the sender tapped for thetransaction less the transaction amount t; generating another key basedon a private key SK_A of the sender and the public key PK_A of thesender; and encrypting another combination of the change blinding factorr_y and the change y with the another key. For example, as describedearlier, Y=PC(r_y, y), PK_A=a, and node A may generate a key a*PK_A=aaGand use the key aaG to encrypt (r_y∥y), which gives encryption E(aaG,r_y∥y).

In some embodiments, the method further comprises: in response toreceiving the recipient signature SIGB, approving the transaction bysigning the transaction to generate a sender signature SIGA; andsubmitting the transaction comprising the encrypted combination, theencrypted another combination, the transaction commitment value T, thechange commitment value Y, the sender signature SIGA, and the recipientsignature SIGB to one or more nodes in a blockchain network for the oneor more nodes to verify the transaction. More details are describedabove with reference to Steps 208-213.

In some embodiments, submitting the transaction comprising the encryptedcombination, the encrypted another combination, the transactioncommitment value T, the change commitment value Y, the sender signatureSIGA, and the recipient signature SIGB to the one or more nodes in theblockchain network for the one or more nodes to verify the transactioncomprises: submitting the transaction comprising the encryptedcombination, the encrypted another combination, the transactioncommitment value T, the change commitment value Y, the sender signatureSIGA, and the recipient signature SIGB to the one or more nodes in theblockchain network, causing the one or more nodes to, in response tosuccessfully verifying the transaction, issue the transaction amount tto the recipient, eliminate the one or more assets tapped for thetransaction, and issue the change y to the sender. More details aredescribed above with reference to Step 214.

FIG. 3B illustrates a flowchart of an exemplary method 400 forinformation protection, according to various embodiments of the presentdisclosure. The method 400 may be implemented by one or more components(e.g., node B, node 2, a combination of node B and node 2, etc.) of thesystem 100 of FIG. 1. The method 400 may be implemented by a system ordevice (e.g., computer, server) comprising a processor and anon-transitory computer-readable storage medium (e.g., memory) storinginstructions to be executed by the processor to cause the system ordevice (e.g., the processor) to perform the method 400. The operationsof the method 400 presented below are intended to be illustrative.Depending on the implementation, the exemplary method 400 may includeadditional, fewer, or alternative steps performed in various orders orin parallel.

Block 401 comprises: obtaining a combination of a transaction blindingfactor r t and a transaction amount t encrypted with a first key of asymmetric key pair, and obtaining a transaction commitment value T. Thetransaction amount t is committed with a commitment scheme by a sendernode associated with a sender of a transaction to obtain the transactioncommitment value T, the commitment scheme comprising at least thetransaction blinding factor r_t. In some embodiments, the first key isgenerated by the sender node based on a private key SK_A of the senderof the transaction and a public key PK_B of a recipient of thetransaction.

Block 402 comprises: generating a second key of the symmetric key pair.In some embodiments, generating the second key of the symmetric key paircomprises generating the second key of the symmetric key pair based on aprivate key SK_B of a recipient of the transaction and a public key PK_Aof the sender under Diffie-Hellman (DH) key exchange protocol.

Block 403 comprises: decrypting the obtained combination with the secondkey generated by a recipient node associated with the recipient toobtain the transaction blinding factor r_t and the transaction amount t.

Block 404 comprises: verifying the transaction based at least on thetransaction commitment value T, the transaction blinding factor r_t, andthe transaction amount t.

Alternative to encrypting the combination (r t, t) such as (r t∥t) atnode A, node A may transmit (r t, t) to node B, causing node B toencrypt the combination (r t, t), as described below with reference toFIG. 4A and FIG. 4B. Other steps and descriptions of FIG. 1 to FIG. 3Bmay similarly apply to FIG. 4A and FIG. 4B.

FIG. 4A illustrates a flowchart of an exemplary method 440 forinformation protection, according to various embodiments of the presentdisclosure. The method 440 may be implemented by one or more components(e.g., node A, node 1, a combination of node A and node 1) of the system100 of FIG. 1. The method 440 may be implemented by a system or device(e.g., computer, server) comprising a processor and a non-transitorycomputer-readable storage medium (e.g., memory) storing instructions tobe executed by the processor to cause the system or device (e.g., theprocessor) to perform the method 440. The operations of method 440presented below are intended to be illustrative. Depending on theimplementation, the exemplary method 440 may include additional, fewer,or alternative steps performed in various orders or in parallel.

Block 441 comprises: committing a transaction amount t of a transactionwith a commitment scheme to obtain a transaction commitment value T, thecommitment scheme comprising at least a transaction blinding factor r_t.

Block 442 comprises: sending the transaction amount t, the transactionblinding factor r_t, and the transaction commitment value T to arecipient node associated with a recipient of the transaction for therecipient node to verify the transaction and to encrypt the transactionblinding factor r_t and the transaction amount t with a second key of asymmetric key pair. For example, node B may verify if T=PC(r t, t), andnode B may encrypt the combination with key baG to obtain E(baG, r_t∥t).

Block 443 comprises: obtaining an encrypted combination (e.g., E(baG,r_t∥t)) of the transaction blinding factor r_t and the transactionamount t from the recipient node.

Block 444 comprises: generating a first key of the symmetric key pair todecrypt the encrypted combination to verify the transaction. Forexample, node A may generate the first key abG to decrypt E(baG, r_t∥t)and verify if r_t and t are correct. Once r_t and t are mutuallyverified by the sender and recipient nodes, the transaction may besubmitted to the blockchain for verification.

FIG. 4B illustrates a flowchart of an exemplary method 450 forinformation protection, according to various embodiments of the presentdisclosure. The method 450 may be implemented by one or more components(e.g., node B, node 2, a combination of node B and node 2, etc.) of thesystem 100 of FIG. 1. The method 450 may be implemented by a system ordevice (e.g., computer, server) comprising a processor and anon-transitory computer-readable storage medium (e.g., memory) storinginstructions to be executed by the processor to cause the system ordevice (e.g., the processor) to perform the method 450. The operationsof the method 450 presented below are intended to be illustrative.Depending on the implementation, the exemplary method 450 may includeadditional, fewer, or alternative steps performed in various orders orin parallel.

Block 451 comprises: obtaining a transaction amount t of a transaction,a transaction blinding factor r_t, and a transaction commitment value T.

Block 452 comprises: verifying the transaction based on the obtainedtransaction amount t, the obtained transaction blinding factor r_t, andthe obtained transaction commitment value T.

Block 453 comprises: in response to successfully verifying thetransaction, encrypting the transaction blinding factor r_t and thetransaction amount t with a second key of a symmetric key pair to obtainan encrypted combination (e.g., E(baG, r_t∥t)).

Block 454 comprises: transmitting the encrypted combination to a sendernode associated with a sender of the transaction.

As shown, the privacy for the transaction amount can be protectedthrough various improvements of the computing technology. For example,the account structure comprise one or more fields, such as a first fieldassociated with the Pedersen commitment of the asset value (e.g., thefirst field being PC(r_{a_i}, a_i), with i being between 1 and m) and asecond field associated with the random number for the Pedersencommitment and the asset value (e.g., the second field being E( . . .)). The first field and second field are also used in the transactionsteps and stored in blockchain.

For another example, a symmetric key is used to encrypt the randomnumber of each Pedersen commitment and the corresponding asset value,and store the transaction including the encrypted random numbers andasset values in the blockchain. This manner obviates local management ofsuch random numbers and promotes security based on the distributed andconsistent blockchain storage.

Further, under the DH key exchange protocol or an alternative protocol,even without direct communication, user A and user B share a commonsecret (the symmetric key pair abG and baG) for encrypting/decryptingthe random number of the commitment and the asset value. Since thesymmetric key pair is obtained from the public-private key pair of thecorresponding accounts, the random number for the commitment can beeffectively stored through blockchain, without further adding anencryption key.

For yet another example, range proof is used to prove that thepre-existing assets of the transaction are balanced against the newassets and the transaction, and that the value of each new asset is in areasonable range. Further, the transaction parties may transmit thecommitted random number and the value of the new asset to the recipientthrough a secured off-blockchain channel to verify whether the committedvalue matches the value of the transaction asset.

As such, random numbers of Pedersen commitments can be convenientlymanaged, without the risk for corruption and without incurringadditional key management burden. Thus, the transaction privacy can bethoroughly protected, and transaction amounts can be kept as secrets.

The techniques described herein are implemented by one or morespecial-purpose computing devices. The special-purpose computing devicesmay be desktop computer systems, server computer systems, portablecomputer systems, handheld devices, networking devices or any otherdevice or combination of devices that incorporate hard-wired and/orprogram logic to implement the techniques. Computing device(s) aregenerally controlled and coordinated by operating system software.Conventional operating systems control and schedule computer processesfor execution, perform memory management, provide file system,networking, I/O services, and provide a user interface functionality,such as a graphical user interface (“GUI”), among other things.

FIG. 5 is a block diagram that illustrates a computer system 500 uponwhich any of the embodiments described herein may be implemented. Thesystem 500 may be implemented in any of the nodes described herein andconfigured to perform corresponding steps for information protectionmethods. The computer system 500 includes a bus 502 or othercommunication mechanism for communicating information, one or morehardware processor(s) 504 coupled with bus 502 for processinginformation. Hardware processor(s) 504 may be, for example, one or moregeneral purpose microprocessors.

The computer system 500 also includes a main memory 506, such as arandom access memory (RAM), cache and/or other dynamic storage devices,coupled to bus 502 for storing information and instructions to beexecuted by processor(s) 504. Main memory 506 also may be used forstoring temporary variables or other intermediate information duringexecution of instructions to be executed by processor(s) 504. Suchinstructions, when stored in storage media accessible to processor(s)504, render computer system 500 into a special-purpose machine that iscustomized to perform the operations specified in the instructions. Thecomputer system 500 further includes a read only memory (ROM) 508 orother static storage device coupled to bus 502 for storing staticinformation and instructions for processor(s) 504. A storage device 510,such as a magnetic disk, optical disk, or USB thumb drive (Flash drive),etc., is provided and coupled to bus 502 for storing information andinstructions.

The computer system 500 may implement the techniques described hereinusing customized hard-wired logic, one or more ASICs or FPGAs, firmwareand/or program logic which in combination with the computer systemcauses or programs computer system 500 to be a special-purpose machine.According to one embodiment, the operations, methods, and processesdescribed herein are performed by computer system 500 in response toprocessor(s) 504 executing one or more sequences of one or moreinstructions contained in main memory 506. Such instructions may be readinto main memory 506 from another storage medium, such as storage device510. Execution of the sequences of instructions contained in main memory506 causes processor(s) 504 to perform the process steps describedherein. In alternative embodiments, hard-wired circuitry may be used inplace of or in combination with software instructions.

The main memory 506, the ROM 508, and/or the storage device 510 mayinclude non-transitory storage media. The term “non-transitory media,”and similar terms, as used herein refers to media that store data and/orinstructions that cause a machine to operate in a specific fashion, themedia excludes transitory signals. Such non-transitory media maycomprise non-volatile media and/or volatile media. Non-volatile mediaincludes, for example, optical or magnetic disks, such as storage device510. Volatile media includes dynamic memory, such as main memory 506.Common forms of non-transitory media include, for example, a floppydisk, a flexible disk, hard disk, solid state drive, magnetic tape, orany other magnetic data storage medium, a CD-ROM, any other optical datastorage medium, any physical medium with patterns of holes, a RAM, aPROM, and EPROM, a FLASH-EPROM, NVRAM, any other memory chip orcartridge, and networked versions of the same.

The computer system 500 also includes a network interface 518 coupled tobus 502. Network interface 518 provides a two-way data communicationcoupling to one or more network links that are connected to one or morelocal networks. For example, network interface 518 may be an integratedservices digital network (ISDN) card, cable modem, satellite modem, or amodem to provide a data communication connection to a corresponding typeof telephone line. As another example, network interface 518 may be alocal area network (LAN) card to provide a data communication connectionto a compatible LAN (or WAN component to communicated with a WAN).Wireless links may also be implemented. In any such implementation,network interface 518 sends and receives electrical, electromagnetic oroptical signals that carry digital data streams representing varioustypes of information.

The computer system 500 can send messages and receive data, includingprogram code, through the network(s), network link and network interface518. In the Internet example, a server might transmit a requested codefor an application program through the Internet, the ISP, the localnetwork and the network interface 518.

The received code may be executed by processor(s) 504 as it is received,and/or stored in storage device 510, or other non-volatile storage forlater execution.

Each of the processes, methods, and algorithms described in thepreceding sections may be embodied in, and fully or partially automatedby, code modules executed by one or more computer systems or computerprocessors comprising computer hardware. The processes and algorithmsmay be implemented partially or wholly in application-specificcircuitry.

The various features and processes described above may be usedindependently of one another, or may be combined in various ways. Allpossible combinations and sub-combinations are intended to fall withinthe scope of this disclosure. In addition, certain method or processblocks may be omitted in some implementations. The methods and processesdescribed herein are also not limited to any particular sequence, andthe blocks or states relating thereto can be performed in othersequences that are appropriate. For example, described blocks or statesmay be performed in an order other than that specifically disclosed, ormultiple blocks or states may be combined in a single block or state.The exemplary blocks or states may be performed in serial, in parallel,or in some other manner. Blocks or states may be added to or removedfrom the disclosed exemplary embodiments. The exemplary systems andcomponents described herein may be configured differently thandescribed. For example, elements may be added to, removed from, orrearranged compared to the disclosed exemplary embodiments.

The various operations of exemplary methods described herein may beperformed, at least partially, by an algorithm. The algorithm may becomprised in program codes or instructions stored in a memory (e.g., anon-transitory computer-readable storage medium described above). Suchalgorithm may comprise a machine learning algorithm. In someembodiments, a machine learning algorithm may not explicitly programcomputers to perform a function, but can learn from training data tomake a predictions model that performs the function.

The various operations of exemplary methods described herein may beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented enginesthat operate to perform one or more operations or functions describedherein.

Similarly, the methods described herein may be at least partiallyprocessor-implemented, with a particular processor or processors beingan example of hardware. For example, at least some of the operations ofa method may be performed by one or more processors orprocessor-implemented engines. Moreover, the one or more processors mayalso operate to support performance of the relevant operations in a“cloud computing” environment or as a “software as a service” (SaaS).For example, at least some of the operations may be performed by a groupof computers (as examples of machines including processors), with theseoperations being accessible via a network (e.g., the Internet) and viaone or more appropriate interfaces (e.g., an Application ProgramInterface (API)).

The performance of certain of the operations may be distributed amongthe processors, not only residing within a single machine, but deployedacross a number of machines. In some exemplary embodiments, theprocessors or processor-implemented engines may be located in a singlegeographic location (e.g., within a home environment, an officeenvironment, or a server farm). In other exemplary embodiments, theprocessors or processor-implemented engines may be distributed across anumber of geographic locations.

Throughout this specification, plural instances may implementcomponents, operations, or structures described as a single instance.Although individual operations of one or more methods are illustratedand described as separate operations, one or more of the individualoperations may be performed concurrently, and nothing requires that theoperations be performed in the order illustrated. Structures andfunctionality presented as separate components in exemplaryconfigurations may be implemented as a combined structure or component.Similarly, structures and functionality presented as a single componentmay be implemented as separate components. These and other variations,modifications, additions, and improvements fall within the scope of thesubject matter herein.

Although an overview of the subject matter has been described withreference to specific exemplary embodiments, various modifications andchanges may be made to these embodiments without departing from thebroader scope of embodiments of the present disclosure. Such embodimentsof the subject matter may be referred to herein, individually orcollectively, by the term “invention” merely for convenience and withoutintending to voluntarily limit the scope of this application to anysingle disclosure or concept if more than one is, in fact, disclosed.The Detailed Description should not to be taken in a limiting sense, andthe scope of various embodiments is defined only by the appended claims,along with the full range of equivalents to which such claims areentitled.

The invention claimed is:
 1. A computer-implemented method forinformation protection, comprising: committing a transaction amount t ofa transaction with a first commitment scheme to obtain a transactioncommitment value T, the first commitment scheme comprising at least atransaction blinding factor r_t; committing a change y of thetransaction with a second commitment scheme to obtain a changecommitment value Y, the second commitment scheme comprising at least achange blinding factor r_y, wherein the change y is an amount of one ormore assets of a sender tapped for the transaction less the transactionamount t; generating a first key of a symmetric key pair; generatinganother key based on a private key SK_A of the sender and the public keyPK_A of the sender; encrypting a combination of the transaction blindingfactor r_t and the transaction amount t with the first key; encryptinganother combination of the change blinding factor r_y and the change ywith the another key; and transmitting the transaction commitment valueT and the encrypted combination of the transaction blinding factor r_tand the transaction amount t to a recipient node associated with arecipient of the transaction for the recipient node to verify thetransaction, causing the recipient node to: generate a second key of thesymmetric key pair based on a private key SK_B of the recipient and apublic key PK_A of the sender; decrypt the encrypted combination of thetransaction blinding factor r_t and the transaction amount t with thegenerated second key to obtain the transaction blinding factor r_t andthe transaction amount t; verify the transaction based at least on thetransmitted transaction commitment value T, the obtained transactionblinding factor r_t, and the obtained transaction amount t; and inresponse to determining that the transmitted transaction commitmentvalue T does not match the first commitment scheme of committing theobtained transaction amount t based on the obtained transaction blindingfactor r_t, reject the transaction; or in response to determining thatthe transmitted transaction commitment value T matches the firstcommitment scheme of committing the obtained transaction amount t basedon the obtained transaction blinding factor r_t, approve the transactionby signing the transaction to generate a recipient signature SIGB toreturn to a sender node associated with the sender.
 2. The method ofclaim 1, wherein generating the first key comprises: generating thefirst key based on the private key SK_A of the sender of the transactionand a public key PK_B of the recipient under Diffie-Hellman (DH) keyexchange protocol.
 3. The method of claim 1, wherein: the firstcommitment scheme comprises a Pedersen commitment based at least on thetransaction blinding factor r_t and with the transaction amount t beinga committed value.
 4. The method of claim 1, wherein: the combination ofthe transaction blinding factor r_t and the transaction amount tcomprises a concatenation of the transaction blinding factor r_t and thetransaction amount t.
 5. The method of claim 1, further comprising: inresponse to receiving the recipient signature SIGB, approving thetransaction by signing the transaction to generate a sender signatureSIGA; and submitting an updated version of the transaction comprisingthe encrypted combination, the encrypted another combination, thetransaction commitment value T, the change commitment value Y, thesender signature SIGA, and the recipient signature SIGB to one or morenodes in a blockchain network for the one or more nodes to verify theupdated version of the transaction.
 6. The method of claim 5, whereinsubmitting the updated version of the transaction comprising theencrypted combination, the encrypted another combination, thetransaction commitment value T, the change commitment value Y, thesender signature SIGA, and the recipient signature SIGB to the one ormore nodes in the blockchain network for the one or more nodes to verifythe updated version of the transaction comprises: submitting the updatedversion of the transaction comprising the encrypted combination, theencrypted another combination, the transaction commitment value T, thechange commitment value Y, the sender signature SIGA, and the recipientsignature SIGB to the one or more nodes in the blockchain network,causing the one or more nodes to, in response to successfully verifyingthe updated version of the transaction, issue the transaction amount tto the recipient, eliminate the one or more assets tapped for thetransaction, and issue the change y to the sender.
 7. A non-transitorycomputer-readable storage medium storing instructions to be executed bya processor to cause the processor to perform operations comprising:committing a transaction amount t of a transaction with a firstcommitment scheme to obtain a transaction commitment value T, the firstcommitment scheme comprising at least a transaction blinding factor r_t;committing a change y of the transaction with a second commitment schemeto obtain a change commitment value Y, the second commitment schemecomprising at least a change blinding factor r_y, wherein the change yis an amount of one or more assets of a sender tapped for thetransaction less the transaction amount t; generating a first key of asymmetric key pair; generating another key based on a private key SK_Aof the sender and the public key PK_A of the sender; encrypting acombination of the transaction blinding factor r_t and the transactionamount t with the first key; encrypting another combination of thechange blinding factor r_y and the change y with the another key; andtransmitting the transaction commitment value T and the encryptedcombination of the transaction blinding factor r_t and the transactionamount t to a recipient node associated with a recipient of thetransaction for the recipient node to verify the transaction, causingthe recipient node to: generate a second key of the symmetric key pairbased on a private key SK_B of the recipient and a public key PK_A ofthe sender; decrypt the encrypted combination of the transactionblinding factor r_t and the transaction amount t with the generatedsecond key to obtain the transaction blinding factor r_t and thetransaction amount t; verify the transaction based at least on thetransmitted transaction commitment value T, the obtained transactionblinding factor r_t, and the obtained transaction amount t; and inresponse to determining that the transmitted transaction commitmentvalue T does not match the first commitment scheme of committing theobtained transaction amount t based on the obtained transaction blindingfactor r_t, reject the transaction; or in response to determining thatthe transmitted transaction commitment value T matches the firstcommitment scheme of committing the obtained transaction amount t basedon the obtained transaction blinding factor r_t, approve the transactionby signing the transaction to generate a recipient signature SIGB toreturn to a sender node associated with the sender.
 8. The storagemedium of claim 7, wherein generating the first key comprises:generating the first key based on the private key SK_A of the sender ofthe transaction and a public key PK_B of the recipient underDiffie-Hellman (DH) key exchange protocol.
 9. The storage medium ofclaim 7, wherein: the first commitment scheme comprises a Pedersencommitment based at least on the transaction blinding factor r_t andwith the transaction amount t being a committed value.
 10. The storagemedium of claim 7, wherein: the combination of the transaction blindingfactor r_t and the transaction amount t comprises a concatenation of thetransaction blinding factor r_t and the transaction amount t.
 11. Thestorage medium of claim 7, wherein the operations further comprise: inresponse to receiving the recipient signature SIGB, approving thetransaction by signing the transaction to generate a sender signatureSIGA; and submitting an updated version of the transaction comprisingthe encrypted combination, the encrypted another combination, thetransaction commitment value T, the change commitment value Y, thesender signature SIGA, and the recipient signature SIGB to one or morenodes in a blockchain network for the one or more nodes to verify theupdated version of the transaction.
 12. The storage medium of claim 11,submitting the updated version of the transaction comprising theencrypted combination, the encrypted another combination, thetransaction commitment value T, the change commitment value Y, thesender signature SIGA, and the recipient signature SIGB to the one ormore nodes in the blockchain network for the one or more nodes to verifythe updated version of the transaction comprises: submitting the updatedversion of the transaction comprising the encrypted combination, theencrypted another combination, the transaction commitment value T, thechange commitment value Y, the sender signature SIGA, and the recipientsignature SIGB to the one or more nodes in the blockchain network,causing the one or more nodes to, in response to successfully verifyingthe updated version of the transaction, issue the transaction amount tto the recipient, eliminate the one or more assets tapped for thetransaction, and issue the change y to the sender.
 13. A system forinformation protection, comprising a processor and a non-transitorycomputer-readable storage medium coupled to the processor, the storagemedium storing instructions to be executed by the processor to cause thesystem to perform operations comprising: committing a transaction amountt of a transaction with a first commitment scheme to obtain atransaction commitment value T, the first commitment scheme comprisingat least a transaction blinding factor r_t; committing a change y of thetransaction with a second commitment scheme to obtain a changecommitment value Y, the second commitment scheme comprising at least achange blinding factor r_y, wherein the change y is an amount of one ormore assets of a sender tapped for the transaction less the transactionamount t; generating a first key of a symmetric key pair; generatinganother key based on a private key SK_A of the sender and the public keyPK_A of the sender; encrypting a combination of the transaction blindingfactor r_t and the transaction amount t with the first key; encryptinganother combination of the change blinding factor r_y and the change ywith the another key; and transmitting the transaction commitment valueT and the encrypted combination of the transaction blinding factor r_tand the transaction amount t to a recipient node associated with arecipient of the transaction for the recipient node to verify thetransaction, causing the recipient node to: generate a second key of thesymmetric key pair based on a private key SK_B of the recipient and apublic key PK_A of the sender; decrypt the encrypted combination of thetransaction blinding factor r_t and the transaction amount t with thegenerated second key to obtain the transaction blinding factor r_t andthe transaction amount t; verify the transaction based at least on thetransmitted transaction commitment value T, the obtained transactionblinding factor r_t, and the obtained transaction amount t; and inresponse to determining that the transmitted transaction commitmentvalue T does not match the first commitment scheme of committing theobtained transaction amount t based on the obtained transaction blindingfactor r_t, reject the transaction; or in response to determining thatthe transmitted transaction commitment value T matches the firstcommitment scheme of committing the obtained transaction amount t basedon the obtained transaction blinding factor r_t, approve the transactionby signing the transaction to generate a recipient signature SIGB toreturn to a sender node associated with the sender.
 14. The system ofclaim 13, wherein generating the first key comprises: generating thefirst key based on the private key SK_A of the sender of the transactionand a public key PK_B of the recipient under Diffie-Hellman (DH) keyexchange protocol.
 15. The system of claim 13, wherein: the firstcommitment scheme comprises a Pedersen commitment based at least on thetransaction blinding factor r_t and with the transaction amount t beinga committed value.
 16. The system of claim 13, wherein: the combinationof the transaction blinding factor r_t and the transaction amount tcomprises a concatenation of the transaction blinding factor r_t and thetransaction amount t.
 17. The system of claim 13, wherein the operationsfurther comprise: in response to receiving the recipient signature SIGB,approving the transaction by signing the transaction to generate asender signature SIGA; and submitting an updated version of thetransaction comprising the encrypted combination, the encrypted anothercombination, the transaction commitment value T, the change commitmentvalue Y, the sender signature SIGA, and the recipient signature SIGB toone or more nodes in a blockchain network for the one or more nodes toverify the updated version of the transaction.
 18. The system of claim17, submitting the updated version of the transaction comprising theencrypted combination, the encrypted another combination, thetransaction commitment value T, the change commitment value Y, thesender signature SIGA, and the recipient signature SIGB to the one ormore nodes in the blockchain network for the one or more nodes to verifythe updated version of the transaction comprises: submitting the updatedversion of the transaction comprising the encrypted combination, theencrypted another combination, the transaction commitment value T, thechange commitment value Y, the sender signature SIGA, and the recipientsignature SIGB to the one or more nodes in the blockchain network,causing the one or more nodes to, in response to successfully verifyingthe updated version of the transaction, issue the transaction amount tto the recipient, eliminate the one or more assets tapped for thetransaction, and issue the change y to the sender.